﻿Imports System.Text
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Imports Logistica.Entities

<TestClass()> Public Class ProductoDOTest

    <TestMethod()>
    Public Sub ListarProductoTest()
        Dim target As New ProductoDO
        Dim actual = target.Listar

        Assert.IsNotNull(actual)
    End Sub



    <TestMethod()>
    Public Sub InsertarProductoTest()
        Dim target As New ProductoDO
        Dim infoProducto As New ProductoBE With {.Nombre = "Producto Ejemplo 1"}
        Dim idProducto = target.Insertar(infoProducto)

        Assert.IsTrue(idProducto > 0)
    End Sub

    <TestMethod()>
    Public Sub ActualizarProductoTest()
        Dim target As New ProductoDO
        Dim infoProducto As New ProductoBE _
            With {.Id = 1, _
                  .Nombre = "Producto Ejemplo ", _
                  .Descripcion = "Descripcion Producto 1000"}

        target.Actualizar(infoProducto)

        Dim infoProductoActualizado As ProductoBE = target.Obtener(infoProducto)

        Assert.AreEqual(infoProducto.Id, infoProductoActualizado.Id)
        Assert.AreEqual(infoProducto.Descripcion, infoProductoActualizado.Descripcion)

    End Sub

    <TestMethod()>
    Public Sub EliminarProductoTest()
        Dim target As New ProductoDO
        Dim infoProducto As New ProductoBE With {.Id = 3}
        target.Eliminar(infoProducto)

        Dim infoProductoEliminado As ProductoBE = target.Obtener(infoProducto)

        Assert.AreEqual(infoProductoEliminado.Id, 0)
    End Sub


    <TestMethod()>
    Public Sub RegistrarMovimientoTest()
        Dim target As New ProductoDO
        Dim infoMovimiento As New MovimientoProductoBE With {.IdProducto = 1, .IdTipoMovimiento = 1, .Cantidad = 5}

        Dim idMovimiento As Integer = target.RegistrarMovimiento(infoMovimiento)

        Assert.IsTrue(idMovimiento > 0)
    End Sub



End Class